/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * GuiLocacao.java
 *
 * Created on 22/11/2011, 11:13:13
 */

package GUI;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Vector;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.table.DefaultTableModel;
import tp1POO.GestorLog;
import tp1POO.Modelo.Cliente;
import tp1POO.Modelo.Locacao;
import tp1POO.Modelo.Motorista;
import tp1POO.Modelo.ObjetoPOO;
import tp1POO.Modelo.Veiculo;
import tp1POO.Persistencia.GerenciadorObjetos;
import tp1POO.Persistencia.Pesquisa;
import tp1POO.Verifica;

/**
 *
 * @author matheus
 */
public class GuiLocacao extends javax.swing.JFrame {
	private String msg="";
	/** Creates new form GuiLocacao */
	public GuiLocacao() {
		initComponents();
		carregaListaVeiculoDisp();
		carregaListaMotoristas();
		carregaClientes();
		jLDataSai.setText(new SimpleDateFormat("dd/MM/yyyy").format(new GregorianCalendar().getTime()));
	}

	/** This method is called from within the constructor to
	 * initialize the form.
	 * WARNING: Do NOT modify this code. The content of this method is
	 * always regenerated by the Form Editor.
	 */
	@SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPLoc = new javax.swing.JPanel();
        jCClientes = new javax.swing.JComboBox();
        jLabel1 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTVeiculos = new javax.swing.JTable();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLDataSai = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jTPrevisao = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        jTKm = new javax.swing.JTextField();
        jScrollPane2 = new javax.swing.JScrollPane();
        jTMotoristas = new javax.swing.JTable();
        jLabel6 = new javax.swing.JLabel();
        jBAddMot = new javax.swing.JButton();
        jOpacao = new javax.swing.JRadioButton();
        jLabel7 = new javax.swing.JLabel();
        jCTipoLoc = new javax.swing.JComboBox();
        jBFechar = new javax.swing.JButton();
        jBOk = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
        setTitle("Cadastrar Locação");

        jPLoc.setBorder(javax.swing.BorderFactory.createTitledBorder("Dados da nova locação"));

        jLabel1.setText("Selecione um cliente :");

        jTVeiculos.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Marca", "Modelo ", "Cor", "Taxa Base", "Preço por Km", "Placa"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTVeiculos.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jScrollPane1.setViewportView(jTVeiculos);

        jLabel2.setText("Selecione um veículo abaixo :");

        jLabel3.setText("Data de Saída :");

        jLDataSai.setFont(new java.awt.Font("Ubuntu", 1, 15));

        jLabel5.setText("Previsão de Dias :");

        jLabel4.setText("Km de Saída : ");

        jTMotoristas.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Nome", "CPF", "CNH"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jScrollPane2.setViewportView(jTMotoristas);

        jLabel6.setText("Selecione  o(os)  Motorista(s)  abaixo  :");

        jBAddMot.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/plus.gif"))); // NOI18N
        jBAddMot.setText("Add Motorista");
        jBAddMot.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBAddMotActionPerformed(evt);
            }
        });

        jOpacao.setText("Cadastrar cliente como motorista");
        jOpacao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jOpacaoActionPerformed(evt);
            }
        });

        jLabel7.setText("Tipo de Locação :");

        jCTipoLoc.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Livre", "Quilometragem", " " }));

        javax.swing.GroupLayout jPLocLayout = new javax.swing.GroupLayout(jPLoc);
        jPLoc.setLayout(jPLocLayout);
        jPLocLayout.setHorizontalGroup(
            jPLocLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPLocLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPLocLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel2)
                    .addGroup(jPLocLayout.createSequentialGroup()
                        .addComponent(jLabel1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCClientes, javax.swing.GroupLayout.PREFERRED_SIZE, 176, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 525, Short.MAX_VALUE)
                    .addGroup(jPLocLayout.createSequentialGroup()
                        .addGroup(jPLocLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPLocLayout.createSequentialGroup()
                                .addComponent(jLabel4)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jTKm))
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPLocLayout.createSequentialGroup()
                                .addComponent(jLabel3)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLDataSai, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(18, 18, 18)
                        .addGroup(jPLocLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPLocLayout.createSequentialGroup()
                                .addComponent(jLabel5)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jTPrevisao, javax.swing.GroupLayout.DEFAULT_SIZE, 154, Short.MAX_VALUE))
                            .addGroup(jPLocLayout.createSequentialGroup()
                                .addComponent(jLabel7)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jCTipoLoc, 0, 153, Short.MAX_VALUE))))
                    .addGroup(jPLocLayout.createSequentialGroup()
                        .addGroup(jPLocLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel6)
                            .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 378, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jBAddMot))
                    .addComponent(jOpacao))
                .addContainerGap())
        );
        jPLocLayout.setVerticalGroup(
            jPLocLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPLocLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPLocLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(jCClientes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(12, 12, 12)
                .addComponent(jLabel2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addGroup(jPLocLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPLocLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel3)
                        .addComponent(jLDataSai, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPLocLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel5)
                        .addComponent(jTPrevisao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(18, 18, 18)
                .addGroup(jPLocLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(jTKm, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel7)
                    .addComponent(jCTipoLoc, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(13, 13, 13)
                .addComponent(jLabel6)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPLocLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jBAddMot))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jOpacao)
                .addContainerGap(26, Short.MAX_VALUE))
        );

        jBFechar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/icoErro.gif"))); // NOI18N
        jBFechar.setText("Fechar");
        jBFechar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBFecharActionPerformed(evt);
            }
        });

        jBOk.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/certo.gif"))); // NOI18N
        jBOk.setText("Ok");
        jBOk.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBOkActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPLoc, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(jBOk)
                        .addGap(59, 59, 59)
                        .addComponent(jBFechar)))
                .addContainerGap())
        );

        layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jBFechar, jBOk});

        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPLoc, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 17, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jBFechar)
                    .addComponent(jBOk))
                .addContainerGap())
        );

        layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jBFechar, jBOk});

        pack();
    }// </editor-fold>//GEN-END:initComponents










	private boolean verificaErro () {
		boolean erro=false;
		String nome = (String)jCClientes.getSelectedItem();

		if (nome==null) {
			msg = msg + "ERRO : Nenhum cliente foi selecionado!\n";
		}
		if (jTVeiculos.getSelectedRow() == -1) {
			msg = msg + "ERRO : Nenhum veículo foi selecionado!\n";
		}
		if (jTPrevisao.getText().isEmpty()) {
			msg = msg + "ERRO : Previsão de Dias Inválido!\n";
		}
		else {
			for (int i=0;i<jTPrevisao.getText().length();i++) {
				if (jTPrevisao.getText().charAt(i) < 48 || jTPrevisao.getText().charAt(i) > 57) {
					msg = msg + "ERRO : A previsão de dias não deve conter letras!\n";
				}
			}
		}
		if (jTKm.getText().isEmpty()) {
			msg = msg + "ERRO : Km de Saída Inválido!\n";
		}
		else {
			for (int i=0;i<jTKm.getText().length();i++) {
				if (jTKm.getText().charAt(i) < 48 || jTKm.getText().charAt(i) > 57) {
					msg = msg + "ERRO : O Km de Saída não deve conter letras!\n";
				}
			}
		}
		if (jTMotoristas.getSelectedRow()==-1 && !jOpacao.isSelected()) {
			msg = msg + "ERRO : Nenhum motorista foi selecionado!\n";
		}

		if (msg.isEmpty()) {
			int indice = jTVeiculos.getSelectedRow();
			msg = msg + Verifica.Locacao(nome, (String)jTVeiculos.getValueAt(indice, 5), jLDataSai.getText());
		}

		if (!msg.isEmpty()) {
			JOptionPane.showMessageDialog(jPLoc,msg, "Error", JOptionPane.ERROR_MESSAGE);
		}

		erro = !msg.isEmpty();
		msg = "";

		return erro;
	}





	private void carregaListaVeiculoDisp () {
		Veiculo veiculo = new Veiculo(" ");
		Vector<Veiculo> obj = Pesquisa.veiculosDisponiveis();
		DefaultTableModel modelo = (DefaultTableModel)jTVeiculos.getModel();

		if (obj.size()!=0) {
			for (int i=0;i<obj.size();i++) {
				veiculo = (Veiculo)obj.get(i);
				modelo.addRow(new String[] {veiculo.getMarca(),veiculo.getModelo(),veiculo.getCor(),String.valueOf(veiculo.getTipoVeiculo().getTaxaBase()),String.valueOf(veiculo.getTipoVeiculo().getPrecoQuilometro()),veiculo.getPlaca()});
			}
		}
	}




	public void carregaListaMotoristas () {
		Motorista motorista = new Motorista(" ");
		Vector<ObjetoPOO> obj = GerenciadorObjetos.obterInstancia().obterObjs(motorista);
		DefaultTableModel modelo = (DefaultTableModel)jTMotoristas.getModel();

		while (modelo.getRowCount()>0) {
			modelo.removeRow(0);
		}

		if (obj.size()!=0) {
			for (int i=0;i<obj.size();i++) {
				motorista = (Motorista)obj.get(i);
				if (motorista.getLocacao() == null) {
					modelo.addRow(new String[] {motorista.getNome(),motorista.getCpf(),motorista.getCNH()});
				}
			}
		}
	}

	private void carregaClientes () {
		Cliente cliente = new Cliente();
		Vector<ObjetoPOO> obj = GerenciadorObjetos.obterInstancia().obterObjs(cliente);

		if (obj.size()!=0) {
			for (int i=0;i<obj.size();i++) {
				cliente = (Cliente)obj.get(i);
				jCClientes.insertItemAt(cliente.getNome(), i);
			}
		}
	}

	private boolean cadastraClienteMotoristaErro (String opcao) {
		boolean erro=false;

		if (opcao == null) {
			msg = msg + "null";
		}
		else {
			if (opcao.isEmpty()) {
				msg = msg + "ERRO : CNH inválido!\n";
			}
			else {
				msg = msg + Verifica.cnhMotorista(opcao);
			}
		}
		if (!msg.isEmpty() && msg.compareTo("null")!=0) {
			JOptionPane.showMessageDialog(jPLoc,msg, "Error", JOptionPane.ERROR_MESSAGE);
		}

		erro = !msg.isEmpty();
		msg = "";

		return erro;
	}


//	private void setLocacaoClienteVeiculo (Cliente cliente,Veiculo veiculo,Locacao loc) {
//		Pesquisa.removeCliente(cliente.getNome());
//		GerenciadorObjetos.obterInstancia().salvarObj(cliente);
//		Pesquisa.removeVeiculo(veiculo.getPlaca());
//		veiculo.addLocacao(loc);
//		GerenciadorObjetos.obterInstancia().salvarObj(veiculo);
//	}

	private Locacao criaLocacao () {
		Cliente cliente = Pesquisa.ObterClienteNome((String)jCClientes.getSelectedItem());
		Veiculo veiculo = Pesquisa.ObterVeiculo((String)jTVeiculos.getValueAt(jTVeiculos.getSelectedRow(),5));
		Locacao loc = new Locacao(veiculo, cliente);
		loc.setDataSaida(jLDataSai.getText());
		loc.setKmSaida(Integer.parseInt(jTKm.getText()));
		loc.setTipoLocacao((String)jCTipoLoc.getSelectedItem());
		loc.setPrevisaoDias(Integer.parseInt(jTPrevisao.getText()));
		//setLocacaoClienteVeiculo(cliente, veiculo, loc);

		if (jOpacao.isSelected()) {
			Motorista motorista = Pesquisa.ObterMotoristaCpf(cliente.getCpf());
			if (motorista == null) {
				String opcao = JOptionPane.showInputDialog(jPLoc, "Insira o CNH do Cliente : ", "Cadastrar Motorista", JOptionPane.QUESTION_MESSAGE);
				if (!cadastraClienteMotoristaErro(opcao)) {
					motorista = new Motorista(cliente, opcao);
                                        GerenciadorObjetos.obterInstancia().salvarObj(motorista);
                                        motorista.setLocacao(loc);
					return loc;
				}
				return null;
			}
			else {
				if (motorista.getLocacao() == null){
                                        motorista.setLocacao(loc);
					GerenciadorObjetos.obterInstancia().salvarObj(motorista);
				}
				else {
					msg = msg + "ERRO : O motorista " + motorista.getNome() + " já possui uma locação pendente!\n";
					return null;
				}
				return loc;
			}
		}
		else {
			Motorista mot;
			int[] indices = jTMotoristas.getSelectedRows();
			for (int i=0;i<jTMotoristas.getSelectedRowCount();i++) {
				mot = Pesquisa.ObterMotoristaCnh((String)jTMotoristas.getValueAt(indices[i], 2));
				if (mot.getLocacao()==null) {
					mot.setLocacao(loc);
					GerenciadorObjetos.obterInstancia().salvarObj(mot);
				}
				else {
					msg = msg + "ERRO : O motorista "+mot.getNome() + " já possui uma locação pendente!\n";
					return null;
				}
			}
			return loc;
		}
	}

	private void limpaOpcoes() {
		jCClientes.setSelectedIndex(0);
		jCTipoLoc.setSelectedIndex(0);
		jOpacao.setSelected(false);
		jTMotoristas.setRowSelectionAllowed(true);
		jBAddMot.setEnabled(true);
		jTPrevisao.setText("");
		jTKm.setText("");
		jTVeiculos.clearSelection();
		jTMotoristas.clearSelection();
		return;
	}




	private void jBFecharActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBFecharActionPerformed
		GestorLog.obterInstancia().inserirMsgLog("Funcionalidade de Adicionar locações foi fechada ("+GuiCreator.obterInstancia().getGuiFuncionalidades().getFuncionario().getCpf()+")");
		GuiCreator.obterInstancia().removerGuiLocacao();
	}//GEN-LAST:event_jBFecharActionPerformed

	private void jBAddMotActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBAddMotActionPerformed
		GestorLog.obterInstancia().inserirMsgLog("Funcionalidade de Adicionar motorista foi iniciada ("+GuiCreator.obterInstancia().getGuiFuncionalidades().getFuncionario().getCpf()+")");
		GuiCreator.obterInstancia().criarGuiMotorista(1);
	}//GEN-LAST:event_jBAddMotActionPerformed

	private void jOpacaoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jOpacaoActionPerformed
		if (jOpacao.isSelected()) {
			jTMotoristas.setRowSelectionAllowed(false);
			jBAddMot.setEnabled(false);
		}
		else {
			jTMotoristas.setRowSelectionAllowed(true);
			jBAddMot.setEnabled(true);
		}
	}//GEN-LAST:event_jOpacaoActionPerformed

	private void jBOkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBOkActionPerformed
		if (!verificaErro()) {
			Locacao loc = criaLocacao();
			if (loc != null) {
				GerenciadorObjetos.obterInstancia().salvarObj(loc);
				GestorLog.obterInstancia().inserirMsgLog(GuiCreator.obterInstancia().getGuiFuncionalidades().getFuncionario().getCpf()+" - Locação cadastrada com Sucesso!\n\tCliente : "+
						loc.getLocador().getNome()+", "+loc.getLocador().getCpf()+"\n\tVeículo : "+
						loc.getVeiculo().getMarca()+", "+loc.getVeiculo().getModelo()+"\n\tData de Saída : "+loc.getDataSaida());
				JOptionPane.showMessageDialog(jPLoc,"Locação cadastrada com Sucesso!", "Sucesso", JOptionPane.INFORMATION_MESSAGE);
				limpaOpcoes();
			}
		}
	}//GEN-LAST:event_jBOkActionPerformed


















	/**
	 * @param args the command line arguments
	 */
	public static void main(String args[]) {
		java.awt.EventQueue.invokeLater(new Runnable() {
			public void run() {
				new GuiLocacao().setVisible(true);
			}
		});
	}

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jBAddMot;
    private javax.swing.JButton jBFechar;
    private javax.swing.JButton jBOk;
    private javax.swing.JComboBox jCClientes;
    private javax.swing.JComboBox jCTipoLoc;
    private javax.swing.JLabel jLDataSai;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JRadioButton jOpacao;
    private javax.swing.JPanel jPLoc;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTextField jTKm;
    private javax.swing.JTable jTMotoristas;
    private javax.swing.JTextField jTPrevisao;
    private javax.swing.JTable jTVeiculos;
    // End of variables declaration//GEN-END:variables

}
